package hcn.protocol.brandnew.dengji.jianyanyuyue;

import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;
import hcn.protocol.brandnew.BaseRequest;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import org.atag.sysrouter.annotation.DictionaryMapping;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


/**
 * 检验预约实时排队信息查询-响应消息(成功) - ODS_02060012_SUC
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "Data")
@XmlAccessorType(XmlAccessType.FIELD)
public class LabAppointQueueInfoResponse {

    /**
     * 队列集合
     */
    @XmlElementWrapper(name = "Datelists")
    @XmlElement(name = "Datelist")
    private List<Datelist> datelists;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class Datelist {

        /**
         * 就诊机构代码
         */
        @XmlElement(name = "VisitOrganization")
        private String visitOrganization;
        /**
         * 就诊机构名称
         */
        @XmlElement(name = "VisitOrganizationName")
        private String visitOrganizationName;
        /**
         * 业务系统患者档案ID
         */
        @XmlElement(name = "SourcePatientId")
        private String sourcePatientId;
        /**
         * 患者姓名
         */
        @XmlElement(name = "Name")
        private String name;
        /**
         * 就诊卡类别代码
         */
        @XmlElement(name = "MedicalCardType")
        private String medicalCardType;
        /**
         * 就诊卡号
         */
        @XmlElement(name = "MedicalCardId")
        private String medicalCardId;
        /**
         * 身份证件号码
         */
        @XmlElement(name = "IdCard")
        private String idCard;
        /**
         * 身份证件类别代码
         */
        @XmlElement(name = "IdCardCode")
        @DictionaryMapping(id = "CV02_01_101")
        private String idCardCode;
        /**
         * 预约顺序号
         */
        @XmlElement(name = "AppointsNo")
        private Short appointsNo;
        /**
         * 操作日期时间
         */
        @XmlElement(name = "OperateDateTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date operateDateTime;
        /**
         * 采样区编码
         */
        @XmlElement(name = "SampleCollectAreaId")
        private String sampleCollectAreaId;
        /**
         * 采样区名称
         */
        @XmlElement(name = "SampleCollectAreaName")
        private String sampleCollectAreaName;
        /**
         * 排队取号号票
         */
        @XmlElement(name = "QueueNo")
        private String queueNo;
        /**
         * 当前呼叫号票
         */
        @XmlElement(name = "QueueCallNo")
        private String queueCallNo;
        /**
         * 排队总人次
         */
        @XmlElement(name = "TotalCount")
        private Long totalCount;
        /**
         * 当前需等待人次
         */
        @XmlElement(name = "RemainCount")
        private Long remainCount;
        /**
         * 已采集人次
         */
        @XmlElement(name = "CollectCount")
        private Long collectCount;
    }

}
